package br.com.boreo.boreoapp_orcamento.adapter;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import br.com.boreo.boreoapp_orcamento.R;
import br.com.boreo.boreoapp_orcamento.controller.ProdutosController;
import br.com.boreo.boreoapp_orcamento.model.Produto;
import br.com.boreo.boreoapp_orcamento.model.Vendas_Itens;

/**
 * @author Lucas Silva;
 * Monta os itens da lista de Produtos por venda.
 */
public class AdapterVendasItens extends BaseAdapter {

	private LayoutInflater mInflater;
	private ArrayList<Vendas_Itens> vendasItens;
	private Context context;
	private ProdutosController produtosControl = new ProdutosController(context);

	public AdapterVendasItens(Context context, ArrayList<Vendas_Itens> itensLista) {
        this.vendasItens = itensLista;
        mInflater = LayoutInflater.from(context);
    }
 
    public int getCount() {
        return vendasItens.size();
    }
 
    public Vendas_Itens getItem(int position) {
        return vendasItens.get(position);
    }
 
    public long getItemId(int position) {
        return position;
    }

	public View getView(int position, View view, ViewGroup parent) {
		ItemSuporte itemHolder;
		if (view == null) {
			view = mInflater.inflate(R.layout.item_vendaitem, null);

			itemHolder = new ItemSuporte();
			itemHolder.tvDescricaoProdutosVendasItens = ((TextView) view.findViewById(R.id.tvDescricaoProdutosVendasItens));
			itemHolder.tvQuantidadeVendasItens = ((TextView) view.findViewById(R.id.tvQuantidadeVendasItens));
			itemHolder.tQuantiadeVendasItensHint = ((TextView) view.findViewById(R.id.tQuantiadeVendasItensHint));

			view.setTag(itemHolder);

		} else {
			itemHolder = (ItemSuporte) view.getTag();
		}

		Vendas_Itens vendaItem = vendasItens.get(position);
		if(vendaItem.getId() == 0){
			itemHolder.tvDescricaoProdutosVendasItens.setText("Nenhum produto encontrado no dispositivo.");
			itemHolder.tvQuantidadeVendasItens.setText("");
			itemHolder.tQuantiadeVendasItensHint.setHint("");
		}
		else{
			Produto produto = pegarProdutoPorId(vendaItem.getId_produto());
			itemHolder.tvDescricaoProdutosVendasItens.setText(produto.getCodigo()+" - "+produto.getDescricao());
			itemHolder.tQuantiadeVendasItensHint.setText(String.format("%.2f", vendaItem.getQuantidade()));
			/*Remove acentos do fornecedor*/
			//itemHolder.tvFornecedorProduto.setText("Forn: "+Normalizer.normalize(produto.getFornecedor(), Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", ""));
		}
		return view;
	}

	private class ItemSuporte {
		TextView tvDescricaoProdutosVendasItens;
		TextView tvQuantidadeVendasItens;
		TextView tQuantiadeVendasItensHint;
	}
	
	public Produto pegarProdutoPorId(int id_produto) {
		ArrayList<Produto> produto = produtosControl.selectProdutoId(id_produto);
		return produto.get(0);
	}
}
